J'ai donc du mal à comprendre l'utilisation correcte de list :: sort () en ce qui concerne une liste de structures. Voici le code pertinent: étudiant struct { char firstnm [20], lastnm [20]; identifiant int, classe; }; listsList; // Code non pertinent ... cout << "Veuillez entrer votre propre nom, identifiant et note. (Ex: mon premier mylast 0 12) \ n"; cin >> data.firstnm >> data.lastnm >> data.id >> data.grade; sList.push_back (données); sList.sort (); Le problème que j'essaie de résoudre utilise sList.sort () pour trier par identifiant. Cependant, je n'ai aucune idée de comment le passer correctement dans list :: sort (). Merci d'avance pour toute aide / temps! EDIT: La solution était simplement d'ajouter ceci à ma structure opérateur booléen <(const student & cmp) const { return id
2021-01-22 08:21:21
Vous devriez jeter un oeil à std :: sort. (https://en.cppreference.com/w/cpp/algorithm/sort) Il existe plusieurs définitions de cette fonction, et une où vous pouvez spécifier ce que vous voulez trier. Jetez également un œil à cet article, je pense que c'est ce dont vous avez besoin: https://stackoverflow.com/a/21234017/6663947 Éditer : c'est un exemple de comparateur: sList.sort ([] (étudiant const & a, étudiant const & b) {return a.idtri vide (Compare comp); En supposant que vous souhaitiez trier les objets étudiants de votre liste en fonction de l'ID de clé dans l'ordre croissant. Vous pouvez définir l'opérateur